<?php
$isReloadable = false;
require_once("../../pers/inc.config.php");
require_once(R2_FS_WEB_ROOT.'/app/_inc/inc.session.php');
require_once(R2_FS_WEB_ROOT.'/app/_inc/funct.html.php');

reqDef('priorita',3);

if(reqVar('prefile')=='')$_REQUEST['prefile'] = uniqid('pref');

//Gestione azioni
if(reqvar('azione')=='allegaFile'){$msgPag .= allegaFile();}
if(substr(reqvar('azione'),0,12)=='cancellaFile'){$msg .= cancellaFile();}

$sql_comm  = " SELECT c.id_comm, c.cod_comm, c.descr, c.id_responsabile ". 
             " FROM commessa c ";
if ($aUtentiRint[$objSess->idUtente]['ric_ope'] == 'ric') {
	$sql_comm .= " INNER JOIN richiedenti r ON r.id_comm = c.id_comm ".
	             "                         AND r.id_operatore = ".$objSess->idUtente;		
} 
$sql_comm .= " WHERE c.data_iniz <= '".date('Y-m-d')."' and c.data_fine >= '".date('Y-m-d')."' ".
             " ORDER BY c.cod_comm, c.descr";
$objDB->query($sql_comm,'selComm');
$aCommesse = array();
$aRespComm = array();
$aCommesse[0] = " - scegliere una commessa - ";
while($acComm = $objDB->fetch('selComm')) { 
	$aCommesse[$acComm['id_comm']] = substr($acComm['cod_comm']." - ".$acComm['descr'],0,100);  
	$aRespComm[$acComm['id_comm']] = $acComm['id_responsabile'];
}

if (substr(reqvar('azione'),0,5) == 'salva') {
	$idResp = 0;
	if (isset($aRespComm[reqVar('id_comm')])) {$idResp = $aRespComm[reqVar('id_comm')];}
	$msgPag .= confIns($idResp);
}

$aTpRint = array();
$aTpRint[0] = "";
foreach ($aTipiRint as $key => $value) {
	$aTpRint[$key] = $value['des'];
}

$aClRint = array();
$aClRint[0] = " - scegliere un cliente - ";
if (reqvar('azione')!=''){	
	// Dati: clienti commessa.
	$sSqlCli = "SELECT * FROM clienti_comm WHERE id_comm = ".intval(reqVar('id_comm'));
	$objDB->query($sSqlCli,'selCli');
	while ($acCli = $objDB->fetch('selCli')) {	
		$aClRint[$acCli['id_cliente']] = $aClientiRint[$acCli['id_cliente']]['nome']; 
	}
	asort($aClRint);
	
	if (reqvar('azione')=='carCli') {
		$_REQUEST['id_cliente'] = 0;
	}
}

$aPrioRint = array();
$aPrioRint[0] = "";
foreach ($aPrioritaRint as $key => $value) {
	$aPrioRint[$key] = $value['des'];
}

$aConsPrev = array();
$aConsPrev['C'] = 'Consuntivo';
$aConsPrev['P'] = 'Preventivo';

$aRicVal = array();
$aRicVal['S'] = 'Si';
$aRicVal['N'] = 'No';

$sCmdR = "";
$sCmdL = "";

$sCmdR .= "<a class='cmd1' href='#' onclick=\"submAzione('salva');\">registra</a>";
$sCmdR .= "&nbsp;&nbsp;&nbsp";
$sCmdR .= cmdTorna('annulla');

$aMenuPag = array();
include("_inc/inc.aMenuPag.php");
testaHtml('Nuova richiesta intervento', $msgPag, '', $aMenuPag);

//Campi nascosti
echo getHtmlForm('frm1');
echo getHtmlHidden('azione','...');
echo getHtmlHidden('prefile');
?>
<input type='hidden' name='xsn' value="<?=XSN?>">

<script>
function submAzione(azione) {
	document.frm1.azione.value=azione;
	document.frm1.submit();
}
</script>

<table class="cmd1" border="0" cellpadding="3" cellspacing="1" width="100%" align='center'>
   <tr>
      <td class="cmd1" align="left" valign='top'><?=$sCmdL?></td>
      <td class="cmd1" align="right"><?=$sCmdR?></td>
   </tr>
</table>

<table class="tab1" border="0" cellpadding="3" cellspacing="1" width="100%" align='center'>
<?=getHtmlRigaRif();?>
   <tr>
      <td class="tit1" colspan='20' align='center'>Nuovo Rint SPOT</td>
   </tr>
   <tr>
   	  <td class="lab1" colspan='3'>Descrizione</td>
	  <td class="txt1" colspan='17'>
			<?=getHtmlText('descr',128,255);?>
	  </td>
   </tr>
   <tr>
      <td class="lab1" colspan='3'>Commessa</td>
	  <td class="txt1" colspan='7'>
	  <?	$aOpt = array();
	  		$aOpt['onChange'] = "submAzione('carCli')";
			echo getHtmlSelect('id_comm', $aCommesse, $val='@REQ', $aOpt);	
	  ?>
	  </td>
	  
      <td class="lab1" colspan='3'>Cliente</td>
	  <td class="txt1" colspan='7'>
			<?=getHtmlSelect('id_cliente',$aClRint);?>
	  </td>  
   </tr>   
   <tr>
      <td class="lab1" colspan='3'>Tipo richiesta</td>
	  <td class="txt1" colspan='7'>
			<?=getHtmlSelect('tipo_rint',$aTpRint);?>
	  </td>
      <td class="lab1" colspan='3'>Priorita'</td>
	  <td class="txt1" colspan='7'>
			<?=getHtmlSelect('priorita',$aPrioRint);?>
	  </td>
   </tr>
   <tr>
   	  <td class="lab1" colspan='3'>Riferimento Esterno</td>
	  <td class="txt1" colspan='17'>
			<?=getHtmlText('rif_esterno',80,80);?>
	  </td>
   </tr>   
   <tr>
      <td class="lab1" colspan='3'>Nota</td>
		<td class="txt1" colspan='17'>
			<?=getHtmlTextArea('nota',130,10);?>
		</td>
   </tr>
   <tr>
		<td class='lab1' colspan='3'>Allegato</td>
		<td class='txt1' colspan='17' align='left' >
			<?=getHtmlFile('file',40);?>
			Nota: <?=getHtmlText('des_alg',56,120);?>
			<a class='txt1', href='#' onclick="submAzione('allegaFile');">allega</a>
		</td>
	</tr>	
<?
for($k=1;$k<100;$k++){
	if(!isset($_REQUEST['alg_desc_'.$k])){continue;}
	echo getHtmlNewAlg($k);
}
?>
   <tr>
      <td class="lab1" colspan='3'>Data inizio attivita'</td>
	  <td class="txt1" colspan='3'>
			<?
			reqDef('data_ini_att', date('d/m/Y'));
			echo getHtmlDate('data_ini_att');
			?>
	  </td>
     <td class="lab1" colspan='3'>Tipo att.</td>
	  <td class="txt1" colspan='4'>
<?
// elenco attivita' rint su cui imputare ore
$aTipiAttRint = array();
include "../_inc/inc.aTipiAttRint.php";
$sAtt = " SELECT ap.tipo_att FROM att_previste ap ".
        " WHERE ap.id_rint = 0 ".
        " AND   ap.id_comm = ".reqVarInt('id_comm').
        " AND   ap.tipo_rilevazione IN ('R','X') ".
		" ORDER BY tipo_att ";
$objDB->query($sAtt, 'sAtt');

// array tipo attivita'
$aAtt = array();
$aAtt['0'] = "";
while ($aRecAtt = $objDB->fetch('sAtt')) {
	$aAtt[$aRecAtt['tipo_att']] = $aTipiAttRint[$aRecAtt['tipo_att']]['des'];
}
echo getHtmlSelect('tipo_att',$aAtt);
?>
	  </td>   
      <td class="lab1" colspan='3'>Ore</td>
	  <td class="txt1" colspan='4'>
			<?=getHtmlDate('ore_esec');?>
	  </td>   
   </tr>
   <tr>
      <td class="lab1" colspan='3'>
      	Data fine attivita'<br>spazio = data inizio
      </td>
	  <td class="txt1" colspan='3'>
			<?
			reqDef('data_fin_att', date('d/m/Y'));
			echo getHtmlDate('data_fin_att');
			?>
	  </td>
     <td class="lab1" colspan='3'>Tipo att.</td>
	  <td class="txt1" colspan='4'>
<?
// elenco attivita' rint su cui imputare ore
echo getHtmlSelect('tipo_att2',$aAtt);
?>
	  </td>   
      <td class="lab1" colspan='3'>Ore (2)</td>
	  <td class="txt1" colspan='4'>
			<?=getHtmlDate('ore_esec2');?>
	  </td>   
   </tr>
</table>
<table class="cmd1" border="0" cellpadding="3" cellspacing="1" width="100%" align='center'>
   <tr>
      <td class="cmd1" align="left" valign='top'><?=$sCmdL?></td>
      <td class="cmd1" align="right"><?=$sCmdR?></td>
   </tr>
</table>

<?

echo "</form>";

codaHtml();
exit();

//Conferma Inserimento dati
function confIns($id_responsabile) {
	global $objDB, $objSess;
	
	$msg = '';
	$stato = intval(substr(reqVar('azione'), 5));
	if (trim(reqVar('descr'))=="") {$msg .= "descrizione obbligatoria<br>";}
	
	if (reqVar('id_comm') == "0") {$msg .= "commessa obbligatoria<br>";}
	
	if (reqVar('id_cliente') == "0") {$msg .= "cliente obbligatorio<br>";}
	
	$odx = new rint2Date();
	$dataScadVal = '0000-00-00';
	if (reqVar('data_scad_valutaz')!='') {
		if ($odx->setDMY(reqVar('data_scad_valutaz'))) {
				$dataScadVal = $odx->getYMD();
		} else {
				$msg .= "data scadenza valutazione ".reqVar('data_scad_valutaz')." errata <br>";
		}
	}
	$dataScadSvil = '0000-00-00';
	if (reqVar('data_scad_svil')!='') {
		if ($odx->setDMY(reqVar('data_scad_svil'))) {
				$dataScadSvil = $odx->getYMD();
		} else {
				$msg .= "data scadenza sviluppo ".reqVar('data_scad_svil')." errata <br>";
		}
	}
	$dataScadInst = '0000-00-00';
	if (reqVar('data_scad_install')!='') {
		if ($odx->setDMY(reqVar('data_scad_install'))) {
				$dataScadInst = $odx->getYMD();
		} else {
				$msg .= "data scadenza installazione ".reqVar('data_scad_install')." errata <br>";
		}
	}
	$dataIniAtt = '0000-00-00';
	if ($odx->setDMY(reqVar('data_ini_att'))) {
		$dataIniAtt = $odx->getYMD();
		if ($dataIniAtt <= R2_DATA_CONSOLID) {
			$msg .= "data inizio att. non superiore alla data di consolidamento</br>";
		}
		if ($dataIniAtt > date("Y-m-d")) {
			$msg .= "data inizio att. futura non ammessa</br>";
		}
	} else {
			$msg .= "data inizio att. esecuzione ".reqVar('data_ini_att')." errata <br>";
	}
	$dataFinAtt = '0000-00-00';
	if (reqVar('data_fin_att')=="") {
		$_REQUEST['data_fin_att'] = reqVar('data_ini_att');
	}
	if ($odx->setDMY(reqVar('data_fin_att'))) {
		$dataFinAtt = $odx->getYMD();
		if ($dataFinAtt <= R2_DATA_CONSOLID) {
			$msg .= "data fine att. non superiore alla data di consolidamento</br>";
		}
		if ($dataFinAtt > date("Y-m-d")) {
			$msg .= "data fine att. futura non ammessa</br>";
		}
	} else {
			$msg .= "data fine att. esecuzione ".reqVar('data_ini_att')." errata <br>";
	}
	if ($dataFinAtt < $dataIniAtt) {
		$msg .= "data fine att. antecedente data inizio att.</br>";
	}
	
	if (reqVar('tipo_att')==0) {
		$msg .= "tipo attivita' non selezionato<br>";
	}
	if (reqVarStr2num('ore_esec')===false || reqVarStr2num('ore_esec')<=0) {
		$msg .= "ore non numeriche o zero<br>";
	}
	if ($dataFinAtt == $dataIniAtt && reqVar('tipo_att') > 0
	&& reqVar('tipo_att')==reqVar('tipo_att2')) {
		$msg .= "doppia attivita'<br>";
	}
	if (reqVarStr2num('ore_esec2')===false) {
		$msg .= "ore (2) non numeriche<br>";
	}
	if (reqVarStr2num('ore_esec2')>0 && reqVar('tipo_att2')==0) {
		$msg .= "ore (2) - manca attivita'<br>";
	}
	if (reqVarStr2num('ore_esec2')==0 && reqVar('tipo_att2')>0) {
		$msg .= "ore (2) mancanti<br>";
	}
	if ($msg != '') {return $msg;}
	
	require R2_FS_WEB_ROOT."/app/_inc/inc.aStatiRint.php";

	$sSqlIns = " INSERT INTO rint SET ". 
			   "  data_ora_ins = '".$dataIniAtt.date(" H:i:s")."'".
				", data_ora_mod = '".$dataFinAtt.date(" H:i:s")."'".
			   ", data_ora_chiusura = '".$dataFinAtt." 23:59:59'".
			   ", stato = 90, valutata = 'C', evasa = 'C', installata = 'C'".
			   ", id_richiedente = ".$objSess->idUtente.
			   ", id_responsabile = ".$id_responsabile.	
			   ", descr = '".reqVarAS('descr')."'".
			   ", rif_esterno = '".reqVarAS('rif_esterno')."'".
	           ", id_comm = ".reqVar('id_comm').
	           ", id_cliente = ".reqVar('id_cliente').
	           ", tipo_rint = ".reqVar('tipo_rint').
			   ", priorita = ".reqVar('priorita').
			   ", data_scad_valutaz = '".$dataScadVal."'".
			   ", data_scad_svil = '".$dataScadSvil."'".
			   ", data_scad_install = '".$dataScadInst."'";
	$objDB->exec($sSqlIns);
	$newId = $objDB->lastInsertId();
	//inserisce log
	$sSqlInsNota = " INSERT INTO rint_log SET ". 
	               "  data_ora = '".$dataFinAtt.date(" H:i:s")."'" .
			       ", stato = 90 ".
			       ", nota = '".reqVarAS('nota')."'".
			       ", id_operatore = '".$objSess->idUtente."'".
			       ", id_rint = ".$newId;
	$objDB->exec($sSqlInsNota);
	// inserisce assegnazione.
	$sInsAss = " INSERT INTO assegnaz SET ".
	           "        id_operatore = ".$objSess->idUtente.
	           ",       id_comm  = ".reqVarInt('id_comm').
	           ",       id_rint  = ".$newId. 
	           ",       tipo_att = ".reqVarInt('tipo_att');	
	$objDB->exec($sInsAss);		
	if (reqVarInt('tipo_att2') > 0 && reqVarInt('tipo_att2')!= reqVarInt('tipo_att')) {
		$sInsAss = " INSERT INTO assegnaz SET ".
		           "        id_operatore = ".$objSess->idUtente.
		           ",       id_comm  = ".reqVarInt('id_comm').
		           ",       id_rint  = ".$newId. 
		           ",       tipo_att = ".reqVarInt('tipo_att2');	
		$objDB->exec($sInsAss);		
	}
	//inserisce attivita' iniz.
	$sIns = "INSERT INTO attivita SET id_comm = ".intval(reqVar('id_comm')).
		     	", id_rint = ".$newId.
		      ", id_operatore = ".$objSess->idUtente.
		      ", tipo_att = ".reqVarInt('tipo_att').
				", data = '".$dataIniAtt."' ".	
				", ore  = '".reqVarStr2num('ore_esec')."' ";
	$objDB->exec($sIns);
	//inserisce attivita' fine.
	if (reqVarInt('tipo_att2')>0) {
		$sIns = "INSERT INTO attivita SET id_comm = ".intval(reqVar('id_comm')).
			     	", id_rint = ".$newId.
			      ", id_operatore = ".$objSess->idUtente.
			      ", tipo_att = ".reqVarInt('tipo_att2').
					", data = '".$dataFinAtt."' ".	
					", ore  = '".reqVarStr2num('ore_esec2')."' ";
		$objDB->exec($sIns);
	}
	
	$msg = "Caricato Rint $newId";
	$msg .= SalvaFile($newId, $stato, $objSess->idUtente);
					
	header("Location: ".urlTorna('rint '.$newId.' caricato'.$msg));
	exit();
}

// Inserisci un allegato sulla directory temporanea
function allegaFile() {
	if ($_FILES['file']['size']==0) {
		return "File inesistente";
	}
	$sorgente = $_FILES['file']['tmp_name'];
  	$nomefile = R2_FS_TEMP_DIR."/".reqVar('prefile').basename($_FILES['file']['name']);
  	if (!move_uploaded_file($sorgente, $nomefile)) {
  		return "Anomalie nel caricamento del file";	
  	}
  	for($k=1;$k<100;$k++) {
  		if(!isset($_REQUEST['alg_desc_'.$k])){break;}
  	}
  	$_REQUEST['alg_nome_'.$k]=basename($_FILES['file']['name']);
  	$_REQUEST['alg_desc_'.$k]=reqVar('des_alg');
  	$_REQUEST['des_alg']='';
}

// Rimuovi un allegato dalla directory temporanea
function cancellaFile() {
	$k = substr(reqVar('azione'),12);
	$fn = reqVar('prefile').reqVar('alg_nome_'.$k);
	unlink(R2_FS_TEMP_DIR."/".$fn);	
	unset($_REQUEST['alg_nome_'.$k]);
	unset($_REQUEST['alg_desc_'.$k]);
	return "eliminato ".substr($fn,strlen(reqVar('prefile')))."<br>";
}

// Salva allegato
function SalvaFile($id,$stato,$idOperatore) {
	global $objDB;
	$dh = opendir(R2_FS_TEMP_DIR);
	for($k=1;$k<100;$k++) {
		if (reqVar('alg_nome_'.$k)!=='') {
			$fn = reqVar('prefile').reqVar('alg_nome_'.$k);
			$sSql	=	" INSERT INTO rint_doc SET ".
						" id_rint = ".$id.", ".
						" stato = ".$stato.", ".
				  		" id_operatore = ".$idOperatore.", ".
				  		" descr = '".addslashes(reqVar('alg_desc_'.$k))."', ".
				  		" data_ora = '".date('Y-m-d H:i:s')."', ".
						" nome_file = '".addslashes(reqVar('alg_nome_'.$k))."', ".
				  		" lungh = ".filesize(R2_FS_TEMP_DIR."/".$fn);
			$res = $objDB->exec($sSql);
			$newIdAlg = $objDB->lastInsertId();
			$file=R2_FS_ALLEG_DIR."/F".$newIdAlg;
			if (!rename(R2_FS_TEMP_DIR."/".$fn,$file)) {
				$sSql	=	"DELETE FROM rint_doc WHERE id_rint_doc = ".$newIdAlg;
				$objDB->exec($sSql,'del_alg');
				unlink(R2_FS_TEMP_DIR."/".$fn);
				return " (Anomalia salvataggio allegati)";
			}
		}
	}	
	return '';	
}

function getHtmlNewAlg($k) {
	$sHtml= "\t<tr>\n";
	$sHtml.="\t\t<td class='lab1'>\n";
	$sHtml.="\t\t\t<a class='lab1' href='#' onclick=\"submAzione('cancellaFile".$k."');\">Elimina</a>\n";
	$sHtml.="\t\t</td>\n";
	$sHtml.="\t\t<td class='txt1' colspan='10' align='left'>\n";
	$sHtml.="\t\t\t<img src='".IcoAlg(reqVar('alg_nome_'.$k))."' height='15' border='0'>";
	$sHtml.="\t\t\t".reqVar('alg_nome_'.$k)."\n";
	$sHtml.= getHtmlHidden('alg_nome_'.$k).getHtmlHidden('alg_desc_'.$k)."\n";
	$sHtml.="\t\t</td>\n";
	$sHtml.="\t\t<td class='txt1' colspan='10' align = 'left'>\n";
	$sHtml.="\t\t\t". reqVar('alg_desc_'.$k)."\n\t\t</td>\n";
	$sHtml.= "\t</tr>\n";
	return $sHtml;
}

function IcoAlg($path){
	if($path==''){return '';}
	$img=" ";
	switch(substr(strtolower($path),-3)){
		case 'pdf':
			$ext="../_img/ico_pdf.gif";
			break;
		case 'doc':
			$ext="../_img/ico_doc.gif";
			break;
		case 'xls':
		case 'csv':
			$ext="../_img/ico_xls.gif";
			break;
		case 'xml':
			$ext="../_img/ico_xml.gif";
			break;
		case 'odt':
		case 'ods':
			$ext="../_img/ico_odx.gif";
			break;
		default:
			$ext="../_img/ico_txt.gif";
			break;				
	}
	return $ext;
}
